package com.yilu.driver.api;


import com.is.common.retrofitrxcache.RxCacheResult;
import com.is.common.rx.BaseUrl;
import com.yilu.driver.DriverConstant;
import com.yilu.driver.entity.ApplyExaminationResponse;
import com.yilu.driver.entity.ApplyGraduationResponse;
import com.yilu.driver.entity.BatchAllResponse;
import com.yilu.driver.entity.DeleteTraineeResponse;
import com.yilu.driver.entity.GraduationResultResponse;
import com.yilu.driver.entity.LoginResponse;
import com.yilu.driver.entity.RegisteredTraineeResponse;
import com.yilu.driver.entity.ScroeRegisterResponse;
import com.yilu.driver.entity.StageGraduationResponse;
import com.yilu.driver.entity.StudentApplyResponse;
import com.yilu.driver.entity.TraineeDropResponse;
import com.yilu.driver.entity.TraineeInfoResponse;
import com.yilu.driver.entity.TraineeListResponse;
import com.yilu.driver.entity.Weather;

import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;

/**
 * des:ApiService
 * Created by Administrator on 2017/3/29 0029.
 */
@BaseUrl(host = DriverConstant.SERVER_API)
public interface DriverApi {
    @GET("health_knowledge/categoryList")
    Observable<RxCacheResult<Weather>> getWeather(@Query("key") String key);

    //登录
    @POST("login/login")
    Observable<RxCacheResult<LoginResponse>> login(@Query("json") String json);

    //学员信息列表
    @POST("student/get-student-all")
    Observable<RxCacheResult<TraineeListResponse>> getTrainInfoList(@Query("json") String json);

    //查看学员详情
    @POST("student/student-info")
    Observable<RxCacheResult<TraineeInfoResponse>> getTraineeInfo(@Query("json") String json);

    //学员退学
    @POST("student/student-leave-school")
    Observable<RxCacheResult<TraineeDropResponse>> dropOutTrainee(@Query("json") String json);

    //删除学员
    @POST("student/student-del")
    Observable<RxCacheResult<DeleteTraineeResponse>> deleteTrainee(@Query("json") String json);

    //查询筛选（成绩登记）
    @POST("student/load-batch-all")
    Observable<RxCacheResult<BatchAllResponse>> loadBatchAll(@Query("json") String json);

    //未登记学员
    @POST("student/registration")
    Observable<RxCacheResult<RegisteredTraineeResponse>> getUnRegisteredTrainee(@Query("json") String json);

    //已登记学员
    @POST("student/registrationed")
    Observable<RxCacheResult<RegisteredTraineeResponse>> getRegisteredTrainee(@Query("json") String json);

    //成绩登记
    @POST("student/score-register")
    Observable<RxCacheResult<ScroeRegisterResponse>> scoreRegister(@Query("json") String json);

    //批次查询（报考登记）
    @POST("student/load-batch")
    Observable<RxCacheResult<BatchAllResponse>> getLoadBatchAll(@Query("json") String json);

    //加载报考学员
    @POST("student/load-student-apply")
    Observable<RxCacheResult<StudentApplyResponse>> getStudentApplyList(@Query("json") String json);

    //加载学员报考名单
    @POST("student/examination-roster")
    Observable<RxCacheResult<StudentApplyResponse>> getExaminationRoster(@Query("json") String json);

    //学员报考
    @POST("student/apply-examination")
    Observable<RxCacheResult<ApplyExaminationResponse>> applyExamination(@Query("json") String json);

    //已经结业学员
    @POST("student/load-stage-graduation")
    Observable<RxCacheResult<StageGraduationResponse>> getStageGraduationList(@Query("json") String json);

    //阶段结业
    @POST("student/stage-graduation")
    Observable<RxCacheResult<GraduationResultResponse>> stageGraduation(@Query("json") String json);

    //加载结业学员
    @POST("student/load-student-apply")
    Observable<RxCacheResult<ApplyGraduationResponse>> getApplyGraduationList(@Query("json") String json);
}
